package com.class05.error;

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * @ClassDescription:
 * 全局异常处理
 * @JdkVersion: 17
 * @Author: yxy
 * @Created: 2023/12/12 9:31
 */
//全局异常发生，会走此类写的handler！
//@ControllerAdvice  可以返回逻辑视图转发和重定向
@RestControllerAdvice // 多加@ResponseBody直接返回json字符串
public class GlobalExceptionHandler {
    /**
     * 发生异常  -》@ControllerAdvice注解的类型 -》 @ExceptionHandler(指定异常) -》handler
     * 指定的异常 可以精准查找，或者查找父异常
     * @param e
     * @return
     */
    @ExceptionHandler(ArithmeticException.class)
//    @ExceptionHandler注解标记异常处理Handler,
//    并且指定发生异常调用该方法!
    public Object arithmeticException(ArithmeticException e){
//        自定义处理异常即可  handler
        String message = e.getMessage();
        System.out.println("message = " + message);
        return message;
    }
    @ExceptionHandler(Exception.class)
    public Object exceptionHandler(Exception e){

//        自定义处理异常即可  handler
        String message = e.getMessage();
        System.out.println("message = " + message);
        return message;
    }
}
